<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of buscar
 *
 * @author peregrina
 */
class buscar extends Paginas {
    
    function __construct($from, $tipo, $id) {
        parent::__construct($from, $tipo, $id);
    }
    
    //Cargar
    function cargar($id) {
        $this->inicio();
    }
    
    function inicio(){
        $buscar = (isset($_GET["buscar"]))? $_GET["buscar"] : "";
        $c1 = (isset($_GET["p"]))? "checked" : "";
        $c2 = (isset($_GET["t"]))? "checked" : "";
        $c3 = (isset($_GET["a"]))? "checked" : "";
        if( $c1 == "" && $c2 == "" && $c3 == "" && empty($_GET["buscar"])){
            $c1=$c2=$c3="checked";
        }
        
        $this->HTML["cuerpo"] = <<<FIN
   <h1>Buscar</h1>
       <form method="get">
       <input type="text" name="buscar" value="$buscar"> 
       <input type="submit" value="Buscar"><br />
       <input type="checkbox" name="p" value="" $c1> Páginas
       <input type="checkbox" name="t" value="" $c2> Temas
       <input type="checkbox" name="a" value="" $c3> Archivos 
       </form>
       <br />
FIN;
        if(!empty($_GET["buscar"])) {
            $this->buscar_termino();
        }
    }
    
    
    function buscar_termino(){
        $buscar = $this->bdd->mysqli->real_escape_string($_GET["buscar"]);
        
        if(isset($_GET["p"])){
            $this->HTML["cuerpo"] .= $this->buscar_paginas($_GET["buscar"]);
        }
        if(isset($_GET["t"])){
            $this->HTML["cuerpo"] .= $this->buscar_temas($_GET["buscar"]);
        }
        if(isset($_GET["a"])){
            $this->HTML["cuerpo"] .= $this->buscar_archivos($_GET["buscar"]);
        }
   
    }
    
    function texto_relevante($texto,$buscar){
        //Buscamos OK y el texto es "por que yo dije que nada de esto estaba OK, osea me entiendes?"
        $pos = strripos($texto, $buscar);
        if ($pos > 15){
            $pos = $pos -15;
        }
        return "...".substr($texto, $pos, 30)."...";
    }
    
    //up down 0 bzplan at web dot de (http://php.net/manual/es/function.strip-tags.php)
    function rip_tags($texto) { 
        return trim(preg_replace('/ {2,}/', ' ', str_replace("\t", ' ', str_replace("\n", ' ', str_replace("\r", '', preg_replace ('/<[^>]*>/', ' ', $texto))))));
    }
    
    function buscar_paginas($buscar){
        $res = $this->bdd->multiquery("select PID, Nombre, Contenido from Paginas where Contenido like '%$buscar%' or Nombre like '%$buscar%';");
        
        $lista ="<h2>Páginas</h2>";
        if(!empty($res)){
            $lista .= "<ul>";
            foreach($res as $item){
                $lista .= "<li><a href='?pid={$item["PID"]}'>{$item["Nombre"]}</a>: <info>\"{$this->texto_relevante($this->rip_tags($item["Contenido"]), $buscar)}\"</info></li>";
            }
            $lista .= "</ul>";
        }
        else{
            $lista .= "No se han encontrado páginas.";
        }
        return $lista."<br /><br />";
    }
    
    function buscar_temas($buscar){
        $res = $this->bdd->multiquery("select TID, Nombre, Contenido from Temas where Contenido like '%$buscar%' or Nombre like '%$buscar%';");
        
        $lista ="<h2>Temas</h2>";
        if(!empty($res)){
            $lista .= "<ul>";
            foreach($res as $item){
                $lista .= "<li><a href='?pid={$item["TID"]}'>{$item["Nombre"]}</a>: <info>\"{$this->texto_relevante($this->rip_tags($item["Contenido"]), $buscar)}\"</info></li>";
            }
            $lista .= "</ul>";
        }
        else{
            $lista .= "No se han encontrado temas.";
        }
        return $lista."<br /><br />";
    }
    
    function buscar_archivos($buscar){
        $res = $this->bdd->multiquery("select AID, Nombre, Descripcion from Archivos where Descripcion like '%$buscar%' or Nombre like '%$buscar%';");
        
        $lista ="<h2>Archivos</h2>";
        if(!empty($res)){
            $lista .= "<ul>";
            foreach($res as $item){
                $lista .= "<li><a href='?pid={$item["AID"]}'>{$item["Nombre"]}</a>: <info>\"{$this->texto_relevante($this->rip_tags($item["Descripcion"]), $buscar)}\"</info></li>";
            }
            $lista .= "</ul>";
        }
        else{
            $lista .= "No se han encontrado archivos.";
        }
        return $lista."<br /><br />";
    }
}

?>
